Parallel calculation method

ABSTRACT

A parallel computing method by using a parallel computer having a plurality of processors is provided, wherein when a 2-electron integration is transformed from an atomic-orbital base (rs|tu) to a molecular-orbital base (ab|cd), indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors and each of the plurality of processors performs processing for all combinations of designated indexes R and S, and indexes t and u of the atomic orbital to be calculated. Subsequently, the grain sizes are equalized, many commodity processors can be connected with high performance, and the cost of a high-speed operation computer reduces. Further, the computer can obtain a large main-memory area, as a whole, through the use of inexpensive local memories.

TECHNICAL FIELD

[0001] The present invention relates to a parallel computing method for total energy and energy gradient by using the multiconfiguration self-consistent field (MCSCF) method and the configuration interaction (CI) method of non-experience molecular-orbital method.

BACKGROUND ART

[0002] Of the non-experience molecular orbital method, the above-described MCSCF method and CI method have been used as typical computing methods that can use electron correlation. According to the MCSCF method, total energy E and the derivative thereof with respect to an atomic-nucleus coordinate, that is, the energy gradient (a force applied on the atomic nucleus) are given as below. $\begin{matrix} {E = {{\sum\limits_{ab}^{MO}{\gamma_{ab}h_{ab}}} + {\frac{1}{2}{\sum\limits_{abcd}^{MO}{\Gamma_{abcd}\left( {{ab}{c\quad d}} \right)}}}}} & (1) \\ {\frac{\partial E}{\partial q} = {{\sum\limits_{ab}^{MO}{\gamma_{ab}\frac{\partial h_{ab}}{\partial q}}} + {\frac{1}{2}{\sum\limits_{abcd}^{MO}{\Gamma_{abcd}\frac{\partial\left( {{ab}{c\quad d}} \right)}{\partial q}}}}}} & (2) \end{matrix}$

[0003] Here, MO indicates a molecular orbital and q indicates any of the nuclei x, y, and z of an atom forming a molecule. γ and Γ indicate functions of a coefficient C of an electron configuration obtained through a solution that will be described later. h_(ab) and (ab|cd) are a 1-electron integration and a 2-electron integration at a molecular-orbital base and are obtained through h_(rs) and (rs|tu) at an atomic orbital base. The h_(rs) and (rs|tu) are defined as below. $\begin{matrix} {{h_{rs} = {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{x_{r}\left( r_{1} \right)}h\quad {x_{s}\left( r_{1} \right)}{r_{1}}}}}}},{h = {{- \frac{\hslash}{2}}{\nabla^{2}{- {\sum\limits_{i = 1}^{{Nuc}.}{\frac{Z_{i}}{{r_{1} - R_{i}}}\quad \left( {{where}\quad \left( {\hslash = {{h/2}\pi}} \right)} \right)}}}}}}} & (3) \\ {\left( {{rs}{tu}} \right) = {\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{\int_{- \infty}^{\infty}{{x_{r}\left( r_{1} \right)}{x_{s}\left( r_{1} \right)}\frac{1}{{r_{1} - r_{2}}}{x_{t}\left( r_{2} \right)}{x_{u}\left( r_{2} \right)}{r_{1}}{r_{2}}}}}}}}}} & (4) \end{matrix}$

[0004] Here, h indicates Planck's constant. Further, Nuc. stands for Nuclei and indicates the number of atoms. Z_(i) indicates the electrical charges of the nuclei and R_(i) indicates the positions of the nuclei. The relationship between s molecular orbital φ_(a) and an atomic orbital χ_(x) is shown as below. $\begin{matrix} {\Phi_{a} = {\sum\limits_{r}^{N}{C_{ra}X_{r}}}} & (5) \end{matrix}$

[0005] The integrations of the Equations (3) and (4) are transformed from the atomic orbital base to the molecular orbital base according to the relationship, as shown below. $\begin{matrix} {h_{ab} = {\sum\limits_{r}^{N}{\sum\limits_{s}^{N}{c_{ra}c_{sb}h_{rs}}}}} & (6) \\ {\left( {{ab}{c\quad d}} \right) = {\sum\limits_{r}^{N}{\sum\limits_{s}^{N}{\sum\limits_{t}^{N}{\sum\limits_{u}^{N}{c_{ra}c_{sb}c_{tc}{c_{ud}\left( {{rs}{tu}} \right)}}}}}}} & (7) \end{matrix}$

[0006] Here, N indicates the number of atomic orbitals. Although the present invention is provided under the assumption that the number of the atomic orbitals is one thousand or more, this method can be used for a case where the number is less than that. c_(a) is a transformation matrix shown in Equation (5) for transforming the atomic orbital into the molecular orbital and referred to as a molecular-orbital coefficient. c_(sb) is another molecular-orbital coefficient. According to the MCSCF method, both the electron-configuration coefficient C and the molecular-orbital coefficient c are obtained by the variational method. However, the CI method is different from the above-described method in that only the coefficient C is obtained.

[0007] The electron-configuration coefficient C is obtained through the following equations. $\begin{matrix} {{\sum\limits_{J}^{CSF}{\left( {H_{IJ} - {\delta_{IJ}E}} \right)C_{J}}} = 0} & (8) \\ {H_{IJ} = {{\sum\limits_{ab}^{MO}{\gamma_{ab}^{IJ}h_{ab}}} + {\frac{1}{2}{\sum\limits_{abcd}^{MO}{\Gamma_{abcd}^{IJ}\left( {{ab}{c\quad d}} \right)}}}}} & (9) \end{matrix}$

[0008] Here, CSF is a configuration state function. A wave function is given as the linear combination of this asymmetric determinant CSF. δ_(IJ) is Kronecker delta. Where an expression I=J stands, the value of δ_(IJ) is one. At all other times, the value thereof is zero.

[0009] A predetermined amount is required for determining the molecular-orbital coefficient, as shown below. $\begin{matrix} {y_{ac} = {\sum\limits_{b}{\sum\limits_{d}{\sum\limits_{x}{\sum\limits_{y}{\left\{ {{\left( {{ab}{xy}} \right)\Gamma_{cdxy}} + {2\left( {{ax}{by}} \right)\Gamma_{cxdy}}} \right\} u_{bd}}}}}}} & (10) \end{matrix}$

[0010] Here, U_(bd) is a matrix relating to linear transformation of the molecular orbital.

[0011] In either the MCSCF method or the CI method, generation of a 2-electron integration (ab|cd) at the molecular-orbital base constitutes most part of the computing cost. According to the complete active space SCF (CASSCF) method, which is a typical method of the MCSCF method, electron excitation is allowed only within a predetermined molecular-orbital range, so as to simplify the formula. Where the number of molecular orbitals in the active space is determined to be n and the number of atomic-orbital bases therein is determined to be N, usually, the relationship between n and N is shown as n<<N. According to a known computing scheme, all the 2-electron integrations at the atomic-orbital bases are stored in a main memory or an external storage medium such as a disk, and transformation shown in Equation (7) is performed. The transformation algorithm is shown in FIGS. 5 and 6. In the case of a simple eight-deep DO loop including indexes a, b, c, and d of the molecular orbital and indexes r, s, t, and u of the atomic orbital, n⁴N⁴ multiplication is required. However, according to the above-described algorithm, the same result as that of the eight-deep DO loop can be obtained by executing a five-deep DO loop four times, and the operand is shown as nN⁴+n²N³+n³N²+n⁴N. For example, where n=10 and N=1000, the computing speed increases by about one thousand times. However, according to this method, many computer resources are required for storing the 2-electron integrations at the atomic-orbital bases and intermediate data midway through transformation. Therefore, this method is not suitable for calculating large-sized molecules.

[0012] In recent years, computers have achieved high-speed operation by using parallel processors. Therefore, according to either the MCSCF method or the CI method, the size of a molecule to be calculated by parallel processing needs to be increased and the computing cost needs to be decreased. The advantages of a parallel computer are shown below.

[0013] 1. A high-speed operation computer can be achieved at low cost by connecting many commodity processors.

[0014] 2. Through the use of many local memories of the processors, the computer obtains a large main-memory area, as a whole.

[0015] The 2-electron integration at the atomic-orbital base and that at the molecular-orbital base are independent of each other. Therefore, where these integrations are parallelized based on this characteristic, the following problems arise. That is to say, since all the 2-electron integrations at N⁴ atomic-orbital bases are required for calculating one 2-electron integration at the molecular-orbital base,

[0016] 1. distribution processing for distributing part of the 2-electron integrations at the atomic-orbital bases to the processors is performed, whereby all the N⁴ 2-electron integrations have to be collected by each of the processors, which generates intercommunications between all the processors and become a bottleneck in communications, even though the integration-computing time can be reduced by parallelization.

[0017] 2. Since all the integrations at the N⁴ atomic-orbital bases need to be calculated in each of the processors for reducing the bottleneck in communications, the reduction of computing time through the parallelization cannot be achieved.

[0018] Thus, the above-described problems are mutually contradictory to each other.

[0019] Further, the computing performed according to Equation (2) and the integration of the molecular-orbital base are required for obtaining the derivative of a 2-electron integration with respect to a nuclear coordinate. In this case, problems same as the above-described problems occur.

DISCLOSURE OF INVENTION

[0020] The object of the present invention is to provide a parallel computing method for solving the above-described problems by using a parallel computer having a plurality of processors.

[0021] The parallel computing method according to the present invention will now be described as below.

[0022] (1) A parallel computing method by using a parallel computer having a plurality of processors, wherein when a 2-electron integration is transformed from an atomic-orbital base (rs|tu) to a molecular-orbital base (ab|cd), indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors and each of the plurality of processors performs processing for all combinations of designated indexes R and S, and indexes t and u of the atomic orbital to be calculated.

[0023] (2) A parallel computing method by using a parallel computer having a plurality of processors, wherein when a 2-electron integration is transformed from an atomic-orbital base (rs|tu) to a molecular-orbital base (ab|cd), indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors and each of the plurality of processors performs processing for all combinations of designated indexes r and s, and indexes t and u of the atomic orbital to be calculated, whereby data to be processed is divided so that grain sizes indicating the workload for the plurality of processors are equalized.

[0024] (3) In a parallel computing method according to the processing (1) or the processing (2),

[0025] data transfer is not performed between the plurality of processors during the 2-electron integration computing and gathering is performed only once after the processing performed by the plurality of processors, so as to obtain the sum of data processed by the plurality of processors.

[0026] (4) In a parallel computing method according to the processing (1) or the processing (2),

[0027] each of the plurality of processors

[0028] 1) calculates a 2-electron integration (RS|tu) at an atomic-orbital base for all combinations of R and S designated for each of the processors, and t and u,

[0029] 2) performs transformation from u to d for the calculated 2-electron integration,

[0030] 3) performs transformation from t to c for the data transformed through the processing 2),

[0031] 4) performs transformation from S to B that is a component of b for the data transformed through the processing 3),

[0032] 5) performs transformation from R to A that is a component of a for the data transformed through the processing 4),

[0033] 6) stores the data transformed through the processing 5) in a local memory of each of the processors, and

[0034] 7) finally performs gathering, thereby obtaining the 2-electron integration (ab|cd) at the molecular-orbital base.

[0035] (5) In a parallel computing method according to the processing (1) or the processing (2),

[0036] each of the plurality of processors

[0037] 1) calculates a 2-electron integration (RS|tu) at an atomic-orbital base for all combinations of R and S designated for each of the processors, and t and u,

[0038] 2) performs transformation from u to d for the calculated 2-electron integration,

[0039] 3) performs transformation from t to c for the data transformed through the processing 2),

[0040] 4) performs transformation from S to B that is a component of b for the data transformed through the processing 3),

[0041] 5) does not transform R but stores in a local memory of each of the plurality of processors, as V_(cbd(RS)), and

[0042] 6) calculates the product sum of a transformation coefficient from R to a, a transformation coefficient between molecular orbitals, and the V_(cbd(RS)), and stores the computing result in a local memory of each of the plurality of processors in repetition computings for Y_(ac) indicating an amount required for determining a molecular-orbital coefficient.

[0043] (6) A parallel computing method by using a parallel computer having a plurality of processors, wherein a secondary density matrix Γ at a molecular-orbital base is transferred to each of the plurality of processors and inversely transformed from the molecular-orbital base to an atomic-orbital base in each of the plurality of processors, whereby indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors, processing is performed for all combinations of the designated indexes R and S, and indexes t and u of the atomic orbital to be calculated, and data to be processed is divided so that grain sizes indicating a workload for the plurality of processors are equalized, where a derivative of a 2-electron integration with respect to an atomic-nuclear coordinate is calculated.

BRIEF DESCRIPTION OF THE DRAWINGS

[0044]FIG. 1 illustrates the first-half of distribution processing performed between processors, where the distribution processing is performed for 2-electron-integration transformation according to the present invention.

[0045]FIG. 2 illustrates the latter-half of the distribution processing performed between the processors, where the distribution processing is performed for the 2-electron-integration transformation according to the present invention.

[0046]FIG. 3 illustrates distribution processing performed between the processors, where the distribution processing is performed for molecular-orbital-coefficient determination repetition computing according to the present invention.

[0047]FIG. 4 illustrates a parallel algorithm obtained through inverse transformation of a secondary density matrix Γ from the molecular-orbital base to the atomic-orbital base according to the present invention.

[0048]FIG. 5 illustrates steps 1 to 3 of 4N⁵ transformation algorithm used for transforming a 2-electron integration from an atomic-orbital base to a molecular-orbital base.

[0049]FIG. 6 illustrates step 4 of the 4N⁵ transformation algorithm used for transforming the 2-electron integration from the atomic-orbital base to the molecular-orbital base.

BEST MODE FOR CARRYING OUT THE INVENTION

[0050] Modes of the present invention will now be described.

[0051] According to the inventors of the present invention, since a 2-electron integration at an atomic-orbital base and a derivative with respect to an atomic-nuclear coordinate are independent of each other, parallelization by using indexes r and s of an atomic orbital is required for transformation from the atomic-orbital base to a molecular-orbital base. (That is to say, the indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors and all the combinations of the designated indexes r and s, and indexes t and u are calculated in each of the processors, so that data to be processed is divided for obtaining equalized grain sizes. Parallelization is performed by the indexes r and s, and computing for all the combinations of these indexes and the indexes t and u is performed in each of the processors. Therefore, floating-point arithmetic needs to be performed on an average of ten thousand times for one 2-electron integration. Subsequently, each of the processors has to perform 10000N² computings, whereby sufficiently large grain sizes can be obtained. The grain sizes need to be equalized and maximized, and the number of transfer between the processors needs to be decreased for increasing parallel-computing performance. This configuration will be illustrated later. According to computing procedures of the present invention, data transfer is not performed between the processors during the 2-electron-integration computing and gathering is performed once after the transformation.

[0052] According to a solution for obtaining a coefficient C of electron configuration, parallelization is performed by the indexes r and s of the atomic orbital. The computing procedures in each of the processors are described below.

[0053] 1) A 2-electron integration (RS|tu) at the atomic-orbital base is calculated for all the combinations of R and S designated for each processor, and t and u.

[0054] 2) Transformation from u to d is performed for the calculated 2-electron integration.

[0055] 3) Transformation from t to c is performed.

[0056] 4) Transformation from S to B is performed.

[0057] 5) Transformation from R to A is performed.

[0058] The transformation data is stored in a local memory of each of the processors. Finally, gathering is performed for obtaining a 2-electron integration (ab|cd) at the molecular-orbital base.

[0059] According to a repetition solution for obtaining a coefficient c of the molecular orbital, parallelization is performed by the indexes r and s of the atomic orbital. The computing procedures performed in each of the processors are described below.

[0060] 1) A 2-electron integration (RS|tu) at the atomic-orbital base is calculated for all the combinations of R and S designated for each processor, and t and u.

[0061] 2) Transformation from u to d is performed for the calculated 2-electron integration.

[0062] 3) Transformation from t to c is performed.

[0063] 4) Transformation from 8 to B is performed.

[0064] 5) R is not transformed but stored in the local memory, as V_(cbd(RS)).

[0065] 6) The product sum of a transformation coefficient (C_(Ra)) from R to a and a transformation coefficient (u_(bd)) between the molecular orbitals is calculated concurrent with repetition computing of Y_(ac) (see Equation (13). Since the local memory of each processor stores V_(cbd(RS)) having a little amount of data, a work area on the main memory is prevented from being increased due to the repetition computing.

[0066] In the energy-gradient computing, the secondary-density matrix Γ at the molecular-orbital base is transferred to each of the processors and inverse transformation from the molecular-orbital base to the atomic-orbital base is performed. Subsequently, parallelization is performed by the indexes r and s of the atomic orbital, whereby the configuration becomes the same as in the case of the 2-electron-integration computing. In this case, the derivative of only an atomic orbital r with respect to a nuclear coordinate needs to be obtained.

[0067] Embodiments of the present invention will now be described.

[0068] According to solutions for obtaining the electron-configuration coefficient C and the molecular-orbital coefficient c according to the MCSCF method and the electron-configuration coefficient C in the CI method, a repetition solution is widely used for reducing the work area on a main memory. Therefore, intermediate data such as the 2-electron integration at the molecular-orbital base needs to be stored. The parallel computer can store the intermediate data due to the above-described advantage given under 2. (Through the use of many local memories of the processors, the computer obtains a large main memory area, as a whole.). On the other hand, since the repetition computing is unnecessary for the energy-gradient computing, the present invention achieves a parallel algorithm based on basic ideas given under 1) and 2).

[0069] 1) For determining the electron-configuration coefficient C and the molecular-orbital coefficient c, where the relationship between n and N is shown as n<<N, intermediate data such as the 2-electron integration at the molecular-orbital base, where the amount of the 2-electron integration is little, is stored on the main memory on each of the processors and used repetitively.

[0070] 2) In the energy-gradient computing, γ and Γ of the molecular-orbital base are inversely transformed to the atomic-orbital base and subjected to parallel computing based on an equation for the atomic-orbital base, as shown below. $\begin{matrix} {\frac{\partial E}{\partial q} = {{\sum\limits_{rs}^{AO}{\gamma_{rs}\frac{\partial h_{rs}}{\partial q}}} + {\sum\limits_{rstu}^{AO}{\Gamma_{rstu}\frac{\partial\left( {{rs}{tu}} \right)}{\partial q}}} - {\sum\limits_{rs}^{AO}{W_{rs}\frac{\partial S_{rs}}{\partial q}}}}} & (11) \end{matrix}$

[0071] Here, AO stands for an atomic orbital. W indicates an amount used for the energy-gradient method. This amount is obtained by calculating the product of orbital energy and the molecular-orbital coefficient. Further, S_(rs) indicates an overlap integration.

[0072] First, a method for generating a 2-electron integration at a molecular-orbital base is described, where the molecular-orbital base belongs to an active space required for determining the electron-configuration coefficient C. Parallelization is performed by the indexes r and s of the atomic orbital. Further, a 2-electron integration (RS|tu) at the atomic-orbital base is calculated for all t and u in each of the processors. The basic algorithm is shown in FIGS. 1 and 2. Here, R and S of the indexes of the atomic orbital, where the indexes are designated as r and s, indicate an atomic orbital allocated to a predetermined processor. An equation is provided as below. $\begin{matrix} {\left( {{ab}{c\quad d}} \right) = {{\sum\limits_{A}{\sum\limits_{B}\left( {{c_{RA}{Rc}_{SB}S}{c\quad d}} \right)}} = {\sum\limits_{A}{\sum\limits_{B}\left( {{AB}{c\quad d}} \right)}}}} & (12) \end{matrix}$

[0073] Here, according to the relationship shown in Equation (5), A and B include only R and S designated for each processor, where the R and S is included in linear-combination components of atomic orbitals r and s with reference to molecular orbitals a and b. Finally, (AB|cd) is gathered, whereby correct (ab|ed) is obtained. According to this relationship, the computing procedures performed in each of the processors are provided as below.

[0074] 1) A 2-electron integration (RS|tu) at the atomic-orbital base is calculated for all the combinations of R and S designated for each processor, and t and u.

[0075] 2) Transformation from u to d is performed for the calculated 2-electron integration.

[0076] 3) Transformation from t to c is performed.

[0077] 4) Transformation from S to B is performed.

[0078] 5) Transformation from R to A is performed.

[0079] It should be noted that no communications between the processors are generated during the steps 1) to 5) are performed and that the number of the 2-electron integrations at the atomic-orbital bases to be calculated in all the processors becomes N⁴. Finally, (AB|cd) on each of the processors is gathered, so as to obtain (ab|ed). The transfer amount is n⁴ at most. Since n is the order of 10 and the transfer is performed in one direction to a master processor, the transfer time presents no problem. Further, where the number of the processors is small, R and S may be grouped, as required, for achieving parallelization in a like manner. The number of entire computings according to known methods is nN⁴+n²N³+n³N²+n⁴N, as described above. According to this method, however, since computings at steps 1 to 4 are performed in N² processors, the number of entire computings is N²(nN²+n²N+n³+n⁴)+n⁴N². Thus, the number of computings according to this method increases by n⁴N(N−1)+n⁴N² through parallelization.

[0080] Next, parallelization of Equation (10) necessary for determining the molecular-orbital coefficient c will be described. Part of Equation (10) is now shown as the atomic-orbital base. $\begin{matrix} \begin{matrix} {y_{ac} = {\sum\limits_{b}{\sum\limits_{d}{\sum\limits_{x}{\sum\limits_{y}{\left\{ {{\left( {{ab}{xy}} \right)\Gamma_{cxdy}} + {2\left( {{ax}{by}} \right)\Gamma_{cxdy}}} \right\} u_{bd}}}}}}} \\ {= {\sum\limits_{b}{\sum\limits_{d}{\sum\limits_{x}{\sum\limits_{y}\left\{ {{\sum\limits_{R}{\sum\limits_{S}{\left( {{c_{Ra}{Rc}_{Sb}S}{xy}} \right)\Gamma_{cxdy}}}} +} \right.}}}}} \\ {\left. {2{\sum\limits_{R}{\sum\limits_{S}{\left( {{c_{Ra}{Rc}_{Sx}S}{by}} \right)\Gamma_{cxdy}}}}} \right\} u_{bd}} \\ {= {\sum\limits_{R}{\sum\limits_{S}{\sum\limits_{b}{\sum\limits_{d}{\sum\limits_{x}{\sum\limits_{y}\left\{ {{\left( {{c_{Ra}{Rc}_{Sb}S}{xy}} \right)\Gamma_{cdxy}} +} \right.}}}}}}} \\ {\left. {2\left( {{c_{Ra}{Rc}_{Sx}S}{by}} \right)\Gamma_{cxdy}} \right\} u_{bd}} \\ {= {\sum\limits_{R}{\sum\limits_{S}{c_{Ra}{\sum\limits_{b}{\sum\limits_{d}{\sum\limits_{x}{\sum\limits_{y}\left\{ {{\left( {{{Rc}_{Sb}S}{xy}} \right)\Gamma_{cdxy}} +} \right.}}}}}}}} \\ {\left. {2\left( {{{Rc}_{Sx}S}{by}} \right)\Gamma_{cxdy}} \right\} u_{bd}} \\ {= {\sum\limits_{R}{\sum\limits_{S}{c_{Ra}{\sum\limits_{b}{\sum\limits_{d}V_{{{cbd}{({RS})}}^{u}{bd}}}}}}}} \\ {= {\sum\limits_{R}{\sum\limits_{S}Y_{{ac}{({RS})}}}}} \end{matrix} & (13) \end{matrix}$

[0081] Further, according to Equation (12), Y_(ac(RS)) can also be gathered, where it is determined to be a part calculated in each of the processors (CPU: Central Processing Unit). It should be noted that the value of transfer data amount is N². Subsequently, y_(ac) can be obtained through performing parallelization by r and s and gathering Y_(ac(RS)) calculated in each of the processors. The data flow is shown in FIG. 3. The reason why data is stored, as V_(cbd(RS)), in each of the processors is shown below. Since a and b in Equation (10) become all the molecular orbitals in principle, the dimension number thereof is N, where the dimension number of x and y is n. Subsequently, the size of the first and second terms becomes n²N². Since r is stored without being transformed, the number of computings increases. However, the size of the work area is reduced to n²N. Further, where (ab|xy) is gathered, the data amount becomes n²N². However, the amount is cut to N² by calculating the sum of x and y in each of the processors before the transfer, whereby the transfer data amount reduces.

[0082] Finally, parallelization of 2-electron integrations by an atomic-nuclear coordinate will now be described. This parallelization is performed for the energy-gradient computing. As described above, this computing method does not require repetition computings. Therefore, the parallelization is achieved by transferring Γ whose data amount is as small as n⁴ to each of the processors and inversely transforming it from the molecular-orbital base to the atomic-orbital base. This inverse-transformation algorithm is shown in FIG. 4. The parallelization is performed by using r and s and computings are performed for all t and u, as in the case of an ordinary 2-electron integration, except that the depth number of the DO loop is seven. The second term of Equation (11) calculated by each of the processors is added to an array keeping a force applied to an atomic nucleus on the processor, and gathered. The size of the array is 3× the atom number and does not become a bottleneck in transfer. The number of computings for the inverse transformation of Γ is the same as that of the known methods.

[0083] According to the above-described parallel algorithm, the parallelization is performed by the indexes r and s of the atomic orbital. Therefore, the grain sizes are equalized, as the number of processors increases, whereby high scalability is maintained. Further, since the suitable number of processors is N², this method can be used for one million parallel computers, where N=1000.

[0084] The following Tables 1 and 2 illustrate the known computing method, the computing number of this method, and expressions of computings performed in the work area. Although the computing number increases a little due to the parallelization, the size of the work area in each of the processors decreases by a factor of N². Subsequently, this algorithm can effectively use inexpensive local memories. TABLE 1 Comparison between computing amount and work area for 2- electron integration transformation according to known transformation method, and those according to transformation method of the present invention N⁵ multiplication method This method (Note 1) Computing Work Computing Work Amount Area Amount Area STEP 1 N⁴n N⁴ + N³n N²n N² + Nn STEP 2 N³n² N³n + N²n² Nn² Nn + n² STEP 3 N²n³ N²n² + Nn³ n³ n² + n³ STEP 4 Nn⁴ Nn³ + n⁴ n⁴ n³ + n⁴ Gathering — — N²n⁴

[0085] TABLE 2 Comparison between computing amount and work area for molecular-orbital coefficient determination according to known transformation method, and those according to transformation method of the present invention N⁵ multiplication method This method (Note 1) Computing Work Computing Work Amount Area Amount Area STEP 1 N⁴n N⁴ + N³n N²n N² + Nn STEP 2 N³n² N³n + N²n² Nn² Nn + n² STEP 3 N³n² 2(N²n²) Nn² n² + Nn² STEP 4 N³n² 2(N²n²) N²n² Nn² + Nn³ Gathering — — N²

[0086] As has been described, the present invention provides a parallel computing method using a parallel computer having a plurality of processors. According to this method, where a 2-electron integration is transformed from an atomic-orbital base (rs|tu) to a molecular-orbital base (ab|cd), indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors. Further, each of the plurality of processors performs processing for all the combinations of designated indexes R and S, and indexes t and u of the atomic orbital to be calculated. Therefore, equalized grain sizes are obtained and many commodity processors can be connected to the parallel computer, with high performance. Therefore, the cost of the high-speed operation computer reduces. Further, since the computer can use inexpensive local memories, it can secure a large main-memory area, as a whole. 

1. A parallel computing method by using a parallel computer having a plurality of processors, wherein when a 2-electron integration is transformed from an atomic-orbital base (rs|tu) to a molecular-orbital base (ab|cd), indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors and each of the plurality of processors performs processing for all combinations of designated indexes R and S, and indexes t and u of the atomic orbital to be calculated.
 2. A parallel computing method by using a parallel computer having a plurality of processors, wherein when a 2-electron integration is transformed from an atomic-orbital base (rs|tu) to a molecular-orbital base (ab|cd), indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors and each of the plurality of processors performs processing for all combinations of the designated indexes r and s, and indexes t and u of the atomic orbital to be calculated, whereby data to be processed is divided so that grain sizes indicating the workload for the plurality of processors are equalized.
 3. A parallel computing method according to claim 1, wherein data transfer is not performed between the plurality of processors during the 2-electron integration computing and wherein gathering is performed only once after the processing performed by the plurality of processors, so as to obtain the sum of data processed by the plurality of processors.
 4. A parallel computing method according to claim 2, wherein data transfer is not performed between the plurality of processors during the 2-electron integration computing and wherein gathering is performed only once after the processing performed by the plurality of processors, so as to obtain the sum of data processed by the plurality of processors.
 5. A parallel computing method according to claim 1, wherein each of the plurality of processors (1) calculates a 2-electron integration (RS|tu) at an atomic-orbital base for all combinations of R and S designated for each of the processors, and t and u, (2) performs transformation from u to d for the calculated 2-electron integration, (3) performs transformation from t to c for the data transformed through the processing (2), (4) performs transformation from S to B that is a component of b for the data transformed through the processing (3), (5) performs transformation from R to A that is a component of a for the data transformed through the processing (4), (6) stores the data transformed through the processing (5) in a local memory of each of the processors, and (7) finally performs gathering, thereby obtaining the 2-electron integration (ab|cd) at the molecular-orbital base.
 6. A parallel computing method according to claim 2, wherein each of the plurality of processors (1) calculates a 2-electron integration (RS|tu) at an atomic-orbital base for all the combinations of R and S designated for each of the processors, and t and u, (2) performs transformation from u to d for the calculated 2-electron integration, (3) performs transformation from t to c for the data transformed through the processing (2), (4) performs transformation from S to B that is a component of b for the data transformed through the processing (3), (5) performs transformation from R to A that is a component of a for the data transformed through the processing (4), (6) stores the data transformed through the processing (5) in a local memory of each of the processors, and (7) finally performs gathering, thereby obtaining the 2-electron integration (ab|cd) at the molecular-orbital base.
 7. A parallel computing method according to claim 1, wherein each of the plurality of processors (1) calculates a 2-electron integration (RS|tu) at an atomic-orbital base for all the combinations of R and S designated for each of the processors, and t and u, (2) performs transformation from u to d for the calculated 2-electron integration, (3) performs transformation from t to c for the data transformed through the processing (2), (4) performs transformation from S to B that is a component of b for the data transformed through the processing (3), (5) does not transform R but stores in a local memory of each of the plurality of processors, as V_(cbd(RS)), and (6) calculates the product sum of a transformation coefficient from R to a, a transformation coefficient between molecular orbitals, and the V_(cbd(Rs)), and stores the computing result in a local memory of each of the plurality of processors in repetition computings for Y_(ac) indicating an amount required for determining a molecular-orbital coefficient.
 8. A parallel computing method according to claim 2, wherein each of the plurality of processors (1) calculates a 2-electron integration (RS|tu) at an atomic-orbital base for all combinations of R and S designated for each of the processors, and t and u, (2) performs transformation from u to d for the calculated 2-electron integration, (3) performs transformation from t to c for the data transformed through the processing (2), (4) performs transformation from S to B that is a component of b for the data transformed through the processing (3), (5) does not transform R but stores in a local memory of each of the plurality of processors, as V_(cbd(RS)), and (6) calculates the product sum of a transformation coefficient from R to a, a transformation coefficient between molecular orbitals, and the V_(cbd(RS)), and stores the computing result in a local memory of each of the plurality of processors in repetition computings for Y_(ac) indicating an amount required for determining a molecular-orbital coefficient.
 9. A parallel computing method by using a parallel computer having a plurality of processors, wherein a secondary density matrix Γ at a molecular-orbital base is transferred to each of the plurality of processors and inversely transformed from the molecular-orbital base to an atomic-orbital base in each of the plurality of processors, whereby indexes r and s of an atomic orbital to be calculated are designated for the plurality of processors, processing is performed for all combinations of the designated indexes R and S, and indexes t and u of the atomic orbital to be calculated, and data to be processed is divided so that grain sizes indicating a workload for the plurality of processors are equalized, where a derivative of a 2-electron integration with respect to an atomic-nuclear coordinate is calculated. 